//package com.john.bms.excel;
//
//import com.alibaba.excel.EasyExcel;
//import com.alibaba.excel.ExcelWriter;
//import com.alibaba.excel.write.metadata.WriteSheet;
//import com.alibaba.excel.write.metadata.style.WriteCellStyle;
//import com.alibaba.excel.write.metadata.style.WriteFont;
//import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
//import org.apache.poi.ss.usermodel.HorizontalAlignment;
//import org.apache.poi.ss.usermodel.IndexedColors;
//import org.apache.poi.ss.usermodel.VerticalAlignment;
//
//import java.util.ArrayList;
//
//import static org.apache.poi.ss.usermodel.BorderStyle.DASHED;
//
///**
// * @Author:张家小帅哥
// * @Date:2020/11/19 15:43
// * @Version:1.0
// * @Description:
// */
//public class ExcelWrite {
//
//    public static String ExcelWrite(ExportParamDto excelData) {
//
//        String fileName = "123.xlsx";
//        // 头的策略
//        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
//        // 背景色
//        headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex());
//        WriteFont headWriteFont = new WriteFont();
//        headWriteFont.setFontHeightInPoints((short) 12);
//        headWriteCellStyle.setWriteFont(headWriteFont);
//        // 内容的策略
//        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
//        // 这里需要指定 FillPatternType 为FillPatternType.SOLID_FOREGROUND 不然无法显示背景颜色.头默认了 FillPatternType所以可以不指定
////        contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
////        contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
//        // 背景绿色
////        contentWriteCellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());
//        // 字体策略
//        WriteFont contentWriteFont = new WriteFont();
//        // 字体大小
//        contentWriteFont.setFontHeightInPoints((short) 12);
//        contentWriteCellStyle.setWriteFont(contentWriteFont);
//
//        //设置 自动换行
//        contentWriteCellStyle.setWrapped(true);
//        //设置 垂直居中
//        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//        //设置 水平居中
//        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
//        //设置边框样式
//        contentWriteCellStyle.setBorderLeft(DASHED);
//        contentWriteCellStyle.setBorderTop(DASHED);
//        contentWriteCellStyle.setBorderRight(DASHED);
//        contentWriteCellStyle.setBorderBottom(DASHED);
//
//        // 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现
//        HorizontalCellStyleStrategy horizontalCellStyleStrategy =
//                new HorizontalCellStyleStrategy(null, contentWriteCellStyle);
//
//        // 方法3 如果写到不同的sheet 不同的对象
//        // 这里 指定文件
//        ExcelWriter excelWriter = EasyExcel.write(fileName).build();
//        // 去调用写入,这里我调用了五次，实际使用时根据数据库分页的总的页数来。这里最终会写到5个sheet里面
//        WriteSheet writeSheet;
//        List<SheetAndMapListDto> testList = excelData.getSheetAndMapListDtoList();
//        for (int i = 0; i < testList.size(); i++) {
//            // 每次都要创建writeSheet 这里注意必须指定sheetNo。这里注意DemoData.class 可以每次都变，我这里为了方便 所以用的同一个class 实际上可以一直变
//            writeSheet = EasyExcel.writerSheet(i, testList.get(i).getRealSheetName())
//                    .head(TestProTplDto.class)
//                    .registerWriteHandler(horizontalCellStyleStrategy)
//                    .registerWriteHandler(new CustomCellWriteHandler())
//                    .build();
//            // 分页去数据库查询数据 这里可以去数据库查询每一页的数据
//            excelWriter.write((ArrayList) testList.get(i).getMapList(), writeSheet);
//        }
//        // finish 关闭流
//        excelWriter.finish();
//
//
//        return fileName;
//
//
//    }
//}
